package com.zmh.dao;

import java.util.List;

import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import com.zmh.entity.MailEntity;

/** 
 * 邮件消息数据库操作类
 * @author zhoumh
 * @version 创建时间：2018年8月15日 上午10:10:10 
 * @Description 
*/
@Mapper
public interface MailMapper {
	@Select("SELECT * FROM mail")
	List<MailEntity> getAll();

	/**
	 * 查询未发送的邮件，每次查询1条
	 * @return: MailEntity
	 * @author: zhoumh
	 * @version: 创建时间：2018年7月22日 下午10:11:42 
	 * @Description:
	 */
	@Select("SELECT * FROM mail WHERE state = '0' limit 1")
	MailEntity getOneByState();
	
	/**
	 * 增加邮件信息
	 * @return: int
	 * @author: zhoumh
	 * @version: 创建时间：2018年7月25日 下午3:58:32 
	 * @Description:
	 */
	@Insert("INSERT INTO mail(uuid, `from`, `to`, `subject`, content, filePath, type) VALUES(uuid(), #{from}, #{to}, #{subject}, #{content}, #{filePath}, #{type})")
	int insert(MailEntity mailEntity);
	/**
	 * 标记邮件已发送
	 * @return: int
	 * @author: zhoumh
	 * @version: 创建时间：2018年8月17日 上午9:46:43 
	 * @Description:
	 */
	@Update("UPDATE mail SET state='1', updateTime=#{updateTime} WHERE uuid= #{uuid}")
	int yfMail(@Param("updateTime")String updateTime,@Param("uuid")String uuid);

	@Delete("DELETE FROM mail WHERE uuid =#{uuid}")
	int delete(String uuid);
	
}

